package controls;

import utilities.Key;

import com.jme3.audio.AudioNode;
import com.jme3.scene.Geometry;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;

import eventManager.IEventListener;

public interface IMasterControl extends IEventListener, GameControl {
	
	public Key getKey();	
	public int getKeyValue();
	
	public void addGeometry(Geometry geometry);
	public void addNode(Node node);
	public void addAudioNode(AudioNode audioNode);
	
	//Utilized by gameState to register, remove events from eventManager
	public void registerEvents();	
	public void deleteEvents();
	
	//Loads events the controller listens for, strategies they use to handle them
	public void loadStrategy(IEventListener strategy);
	
	public void addGameControl(GameControl control, String spatialName);
	public void removeGameControl(String name);
}
